﻿using System.Net.Http;

namespace CkSoftware.GroupMe.Sdk.Core
{
	/// <summary>
	/// Defines a command which can be executed by the WebApiAccess.
	/// </summary>
	/// <typeparam name="TResultEntity">The entity which will be expected from this command.</typeparam>
	// ReSharper disable UnusedTypeParameter
	public interface IWebApiCommand<TResultEntity>
		// ReSharper restore UnusedTypeParameter
	{
		/// <summary>
		/// Defines if the command is executed once.
		/// </summary>
		bool CommandExecuted { get; set; }

		/// <summary>
		/// The name of the command to be executed.
		/// </summary>
		string CommandName { get; }

		/// <summary>
		/// The http method to execute this command.
		/// </summary>
		HttpMethod HttpMethod { get; }

		/// <summary>
		/// The parameters which should be used on command execution.
		/// </summary>
		IWebApiCommandParameters Parameters { get; }
	}
}